Laravel 后端框架
React  前端框架


PHP开发(核心重要的)
    Composer 下载器
    Thinkphp MVC 控制器 -  视图  - 模型 (有路由)
    Laravel  MVC 

开发流程
    URL -> 模块/控制/方法 -> 业务逻辑 -> 渲染视图 -> 展示客户
    模型 -> 自动更新和插入 save  deletetime(字段) 设置模型 软删除 
    with -> 模型关联查询  getAvatarCdnAttr 获取器

Vue MVVM
    URL -> 路由 -> 组件 -> 渲染页面 -> 展示客户


Laravel 
    版本过渡


    URL -> 路由 -> 控制器 -> 加载模型 -> 渲染视图 -> 展示客户 

Laravel-Admin  基于laravel 二次加工一个后台管理系统
    固定会有的一些东西
        管理员登录
        RBAC -> 角色管理系统
        菜单规则
        角色组
        管理员

        admin   超级管理员   *所有权限
        demo    普通管理员    1,2,3,4,5


Composer 包管理器


先看composer 是否有安装
composer --version 


查看composer全局安装了哪些依赖包
composer global show


安装Laravel 指定版本
composer create-project --prefer-dist laravel/laravel 项目文件夹名称 "6.*"


创建一个基于laravel6.x版本的laravel的项目
composer create-project --prefer-dist laravel/laravel admin "6.*"

phpmyadmin 手动创建

用程序帮我们创建表 
faker 工具  填充器(可以帮我们生成测试数据)
seeder 数据库迁移  用来创建表
factory  工厂模式 将数据库迁移 和 填充器 结合的 一个工厂模式程序

数据库审计 (事务)  提交一条sql语句  审计的程序里面存放 运维人员 审核他
    ask -> 5,6表
    首先 在大项目 -> (20个人)  5个以内
    宝塔 
        运维来负责

一个项目   5台服务器
    一门语言限制死   web
    web行业
        前期：前端开发基础 (1年以上 非常痛苦 基础不好 - 最坏的一种打算)

    千万不能找 混吃等死工作
    20来岁 
    30而立 



cnpm -> package.json  
composer -> composer.json


创建模块
php think build --module admin 


命令行工具
php artisan build --model Admin 


给laravel生成秘钥，因为laravel用到cookie,session 要加密 肯定是需要秘钥
php artisan key:generate --ansi


用apache 创建一个虚拟主机   指向到 public 目录来进行访问


启动laravel
php artisan serve


blade 是laravel自带的一个php的模板引擎
smarty 是Tp的模板引擎


修改数据库配置
.env 
config/database.php

去到admin根目录中，去安装laravel-admin
composer require encore/laravel-admin:1.x

发布命令 生成表结构 admin 
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

安装
php artisan admin:install


修改默认语言
config/app.php
'locale' => 'zh-CN',


修改默认折叠菜单
config/admin.php
'layout' => ['sidebar-mini'],


Disk [admin] not configured, please add a disk config in `config/filesystems.php`.

disks
'admin' => [
            'driver' => 'local',
            'root' => public_path('uploads'),
            'visibility' => 'public',
            'url' => env('APP_URL').'/uploads/', 
            // 'url' => env('APP_URL'), 
        ],
Tp 
    application  应用程序的核心目录


laravel 
    app 应用程序的核心目录
    bootstrap 它与前端的bootstrap 没有任何关系
        框架启动的时候所运行的目录
    config 放的配置文件
    database 数据库目录
        迁移工具、填充器、工厂模式
    public  公共访问目录
    resource 应用资源
        /lang  语言包
        /views 视图
        /js
        /sass
    routes  路由
    storage 缓存
    tests 单元测试目录
    vendor 用composer安装生成的依赖包目录
        npm安装 生成 node_modules
    .env 环境配置文件
    artisan  跟Tp根目录  think 命令行工具
    composer.json 依赖包配置
    server.php 用命令启动框架的时候 就会运行 server.php 

最经常操作的
    app、config、resource/views/、routes


middleware 中间件 (vue-router的钩子) 守卫路由
/admin/user/add -> 钩子(中间件) -> 控制器


kernel.php 这个是中间件的集合文件


laravel-admin  不需要指定模板

pre_article  文章表
pre_article_type  文章分类表


创建一个数据库迁移
php artisan make:migration create_article_type_table --create="article_type"
php artisan make:migration create_article_table --create="article"

编辑这个迁移文件
/database/migration/
    up 运行迁移时所执行的方法
    down 回滚的时候所执行的方法

运行未执行的迁移
    php artisan migrate

回滚 只默认回滚 1步 
php artisan migrate:rollback

如果我们想回滚多个步骤
php artisan migrate:rollback --step=2 //回滚两步

填充器 seeds  就是往数据表里面添加数据

1、创建一个填充器 会生成在 database/seeds/
php artisan make:seeder ArticleTableSeeder
php artisan make:seeder ArticleTypeTableSeeder

2、创建模型  app/Models (laravel没有模型的概念，所以你自己去app/Models创建文件夹)
php artisan make:model Models/Article/Article
php artisan make:model Models/Article/Type

3、创建一个工厂模式 新生成的工厂位置在 database/factories 目录下
php artisan make:factory ArticleFactory --model=Models/Article/Article
php artisan make:factory ArticleTypeFactory --model=Models/Article/Type

4、去修改填充器/修改工厂模型/添加自动填充器
    database/seeds/ArticleType
    database/factories/ArticleTypeFactory
    database/seeds/DatabaseSeeder

5、重新生成 Composer 的自动加载器
    composer dump-autoload

6、运行填充器
    php artisan db:seed


laravel 6.x 
laravel-admin 1.x 

laravel 8.x
    https://learnku.com/docs/laravel/8.5/installation/10359#1dabc3

laravel-admin dcat-admin 
    https://learnku.com/docs/dcat-admin/2.x



------------------------------------------------------------------------------
通过composer来安装laravel框架
composer --version

直接安装laravel框架v8.6.9
composer create-project laravel/laravel blog


查看框架所有的命令
php artisan serve 


设置数据库
.env 
config/database.php


安装dcat-admin
composer require dcat/laravel-admin:"2.*" -vvv

然后运行下面的命令来发布资源
php artisan admin:publish

然后运行下面的命令完成安装：
php artisan admin:install

启动服务后，在浏览器打开 http://www.blog.com/admin
使用用户名 admin 和密码 admin 登陆



先从前台开始做 

创建控制器
php artisan make:controller HomeController --invokable

修改默认的路由地址
web.php 


指定模板文件，模板布局
resource/views/components/layout.blade.php


创建一个数据库迁移
php artisan make:migration create_article_type_table --create="article_type"
php artisan make:migration create_article_table --create="article"

运行未执行的迁移
    php artisan migrate

6、迁移回滚
    php artisan migrate:rollback

第一种方法：可以通过命令 创建控制器、模型m、迁移m、填充s、工厂f 控制器c
php artisan make:model Article/Type -mfs
php artisan make:model Article/Article -mfs
php artisan make:model Article/Comment -m

修改
    模型、工厂、迁移、填充器、自动加载DatabaseSeeder

运行未执行的迁移
    php artisan migrate

重新生成 Composer 的自动加载器
    composer dump-autoload

运行填充器
    php artisan db:seed







第二种方法：
1、创建一个填充器 会生成在 database/seeds/
php artisan make:seeder ArticleTableSeeder
php artisan make:seeder ArticleTypeTableSeeder

2、创建模型  app/Models (laravel没有模型的概念，所以你自己去app/Models创建文件夹)
php artisan make:model Article/Article
php artisan make:model Article/Type

3、创建一个工厂模式 新生成的工厂位置在 database/factories 目录下
php artisan make:factory ArticleFactory --model=Models/Article/Article
php artisan make:factory ArticleTypeFactory --model=Models/Article/Type

4、去修改填充器/修改工厂模型/添加自动填充器
    database/seeds/ArticleType
    database/factories/ArticleTypeFactory
    database/seeds/DatabaseSeeder

5、重新生成 Composer 的自动加载器
    composer dump-autoload

6、运行填充器
    php artisan db:seed


填充的测试数据的规则
https://www.cnblogs.com/jxl1996/p/10335920.html



分页处理

导出默认的分页样式
php artisan vendor:publish --tag=laravel-pagination

修改应用全局服务文件
app/provider/AppServiceProvider.php


dcat-admin 基于laravel-admin 
后台
    grid    ->   分页列表
    detail  ->   详细界面
    form    ->   添加 / 编辑 页面